package com.rimi.cs.javaweb.dao;

import com.rimi.cs.javaweb.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户的映射接口
 * @author Hayes
 */
public interface UserMapper {
    /**
     * 根据用户ID删除用户条目
     * @param userId 用户ID
     * @return
     */
    int deleteByPrimaryKey(Long userId);

    /**
     * 根据User实例插入用户条目
     * @param record User实例
     * @return
     */
    int insert(User record);

    /**
     * 根据用户ID查询用户条目
     * @param userId 用户ID
     * @return
     */
    User selectByPrimaryKey(Long userId);

    /**
     * 查询所有用户条目
     * @return
     */
    List<User> selectAll();

    /**
     * 根据User实例更新用户条目
     * @param record User实例
     * @return
     */
    int updateByPrimaryKey(User record);

    /**
     * 根据用户名查询用户条目
     * @param name 用户名
     * @return
     */
    User selectByUserName(String name);

    boolean updateByUser(User user);

    /**
     * 根据邮箱查询用户
     * @param email
     * @return
     */
    User selectByEmail(String email);

    /**
     * 更新密码
     * @param password
     * @return
     */
    int updatePassword(@Param("password") String password, @Param("userId") Long userId);
}